package com.yzlwb.skt.domain;

import com.yzlwb.common.annotation.Excel;
import com.yzlwb.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 任务创建记录对象 skt_task_construct
 * 
 * @author wfy
 * @date 2025-11-14
 */
public class SktTaskConstruct extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键id */
    private Long id;

    /** 部门id */
    @Excel(name = "部门id")
    private Long deptId;

    /** 司空二项目uuid */
    @Excel(name = "司空二项目uuid")
    private String twoProjectUuid;

    /** 司空二计划的uuid */
    @Excel(name = "司空二计划的uuid")
    private String taskUuid;

    /** 司空二航线文件uuid */
    @Excel(name = "司空二航线文件uuid")
    private String waylineUuid;

    /** 机场SN */
    @Excel(name = "机场SN")
    private String airportSn;

    /** 降落机场SN，非蛙跳任务可不填 */
    @Excel(name = "降落机场SN，非蛙跳任务可不填")
    private String landingDockSn;

    /** 返航高度 */
    @Excel(name = "返航高度")
    private Long rthAltitude;

    /** 返航模式 */
    @Excel(name = "返航模式")
    private String rthMode;

    /** 任务精度 */
    @Excel(name = "任务精度")
    private String waylinePrecisionType;

    /** 丢失信号后无人机动作 */
    @Excel(name = "丢失信号后无人机动作")
    private String outOfControlActionInFlight;

    /** 自动断点续飞 */
    @Excel(name = "自动断点续飞")
    private String resumableStatus;

    /** 任务类型 */
    @Excel(name = "任务类型")
    private String taskType;

    /** 时区，TZ database中的时区名称 */
    @Excel(name = "时区，TZ database中的时区名称")
    private String timeZone;

    /** 任务重复模式 */
    @Excel(name = "任务重复模式")
    private String repeatType;

    /** 重复间隔时间：最小1，每几天/周/月 */
    @Excel(name = "重复间隔时间：最小1，每几天/周/月")
    private Long repeatOptionInterval;

    /** 每周执行日数组，每周第几天，0-6，多个字符,隔开 */
    @Excel(name = "每周执行日数组，每周第几天，0-6，多个字符,隔开")
    private String repeatOptionDaysOfWeek;

    /** 每月执行日，每月第几天，1-31, 多个字符,隔开 */
    @Excel(name = "每月执行日，每月第几天，1-31, 多个字符,隔开")
    private String repeatOptionDaysOfMonth;

    /** 每月第几周，1-4 */
    @Excel(name = "每月第几周，1-4")
    private Long repeatOptionWeekOfMonth;

    /** 开始时间 yyyy-MM-dd HH:mm:ss */
    @Excel(name = "开始时间 yyyy-MM-dd HH:mm:ss")
    private String beginAt;

    /** 结束时间 yyyy-MM-dd HH:mm:ss */
    @Excel(name = "结束时间 yyyy-MM-dd HH:mm:ss")
    private String endAt;

    /** 重复任务的多个执行时间段,多个字符,隔开 如 11:52,12.55,13.55  */
    @Excel(name = "重复任务的多个执行时间段,多个字符,隔开 如 11:52,12.55,13.55 ")
    private String recurringTaskStartTimeList;

    /** 连续任务的多个执行时间段,同组字符用,隔开 不同组用@分割 如11:52,12:52@13:55,14:55 */
    @Excel(name = "连续任务的多个执行时间段,同组字符用,隔开 不同组用@分割 如11:52,12:52@13:55,14:55")
    private String continuousTaskPeriods;

    /** 连续执行最低执行电量 */
    @Excel(name = "连续执行最低执行电量")
    private Long minBatteryCapacity;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setDeptId(Long deptId) 
    {
        this.deptId = deptId;
    }

    public Long getDeptId() 
    {
        return deptId;
    }

    public void setTwoProjectUuid(String twoProjectUuid) 
    {
        this.twoProjectUuid = twoProjectUuid;
    }

    public String getTwoProjectUuid() 
    {
        return twoProjectUuid;
    }

    public void setTaskUuid(String taskUuid) 
    {
        this.taskUuid = taskUuid;
    }

    public String getTaskUuid() 
    {
        return taskUuid;
    }

    public void setWaylineUuid(String waylineUuid) 
    {
        this.waylineUuid = waylineUuid;
    }

    public String getWaylineUuid() 
    {
        return waylineUuid;
    }

    public void setAirportSn(String airportSn) 
    {
        this.airportSn = airportSn;
    }

    public String getAirportSn() 
    {
        return airportSn;
    }

    public void setLandingDockSn(String landingDockSn) 
    {
        this.landingDockSn = landingDockSn;
    }

    public String getLandingDockSn() 
    {
        return landingDockSn;
    }

    public void setRthAltitude(Long rthAltitude) 
    {
        this.rthAltitude = rthAltitude;
    }

    public Long getRthAltitude() 
    {
        return rthAltitude;
    }

    public void setRthMode(String rthMode) 
    {
        this.rthMode = rthMode;
    }

    public String getRthMode() 
    {
        return rthMode;
    }

    public void setWaylinePrecisionType(String waylinePrecisionType) 
    {
        this.waylinePrecisionType = waylinePrecisionType;
    }

    public String getWaylinePrecisionType() 
    {
        return waylinePrecisionType;
    }

    public void setOutOfControlActionInFlight(String outOfControlActionInFlight) 
    {
        this.outOfControlActionInFlight = outOfControlActionInFlight;
    }

    public String getOutOfControlActionInFlight() 
    {
        return outOfControlActionInFlight;
    }

    public void setResumableStatus(String resumableStatus) 
    {
        this.resumableStatus = resumableStatus;
    }

    public String getResumableStatus() 
    {
        return resumableStatus;
    }

    public void setTaskType(String taskType) 
    {
        this.taskType = taskType;
    }

    public String getTaskType() 
    {
        return taskType;
    }

    public void setTimeZone(String timeZone) 
    {
        this.timeZone = timeZone;
    }

    public String getTimeZone() 
    {
        return timeZone;
    }

    public void setRepeatType(String repeatType) 
    {
        this.repeatType = repeatType;
    }

    public String getRepeatType() 
    {
        return repeatType;
    }

    public void setRepeatOptionInterval(Long repeatOptionInterval) 
    {
        this.repeatOptionInterval = repeatOptionInterval;
    }

    public Long getRepeatOptionInterval() 
    {
        return repeatOptionInterval;
    }

    public void setRepeatOptionDaysOfWeek(String repeatOptionDaysOfWeek) 
    {
        this.repeatOptionDaysOfWeek = repeatOptionDaysOfWeek;
    }

    public String getRepeatOptionDaysOfWeek() 
    {
        return repeatOptionDaysOfWeek;
    }

    public void setRepeatOptionDaysOfMonth(String repeatOptionDaysOfMonth) 
    {
        this.repeatOptionDaysOfMonth = repeatOptionDaysOfMonth;
    }

    public String getRepeatOptionDaysOfMonth() 
    {
        return repeatOptionDaysOfMonth;
    }

    public void setRepeatOptionWeekOfMonth(Long repeatOptionWeekOfMonth) 
    {
        this.repeatOptionWeekOfMonth = repeatOptionWeekOfMonth;
    }

    public Long getRepeatOptionWeekOfMonth() 
    {
        return repeatOptionWeekOfMonth;
    }

    public void setBeginAt(String beginAt) 
    {
        this.beginAt = beginAt;
    }

    public String getBeginAt() 
    {
        return beginAt;
    }

    public void setEndAt(String endAt) 
    {
        this.endAt = endAt;
    }

    public String getEndAt() 
    {
        return endAt;
    }

    public void setRecurringTaskStartTimeList(String recurringTaskStartTimeList) 
    {
        this.recurringTaskStartTimeList = recurringTaskStartTimeList;
    }

    public String getRecurringTaskStartTimeList() 
    {
        return recurringTaskStartTimeList;
    }

    public void setContinuousTaskPeriods(String continuousTaskPeriods) 
    {
        this.continuousTaskPeriods = continuousTaskPeriods;
    }

    public String getContinuousTaskPeriods() 
    {
        return continuousTaskPeriods;
    }

    public void setMinBatteryCapacity(Long minBatteryCapacity) 
    {
        this.minBatteryCapacity = minBatteryCapacity;
    }

    public Long getMinBatteryCapacity() 
    {
        return minBatteryCapacity;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("deptId", getDeptId())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("twoProjectUuid", getTwoProjectUuid())
            .append("taskUuid", getTaskUuid())
            .append("waylineUuid", getWaylineUuid())
            .append("airportSn", getAirportSn())
            .append("landingDockSn", getLandingDockSn())
            .append("rthAltitude", getRthAltitude())
            .append("rthMode", getRthMode())
            .append("waylinePrecisionType", getWaylinePrecisionType())
            .append("outOfControlActionInFlight", getOutOfControlActionInFlight())
            .append("resumableStatus", getResumableStatus())
            .append("taskType", getTaskType())
            .append("timeZone", getTimeZone())
            .append("repeatType", getRepeatType())
            .append("repeatOptionInterval", getRepeatOptionInterval())
            .append("repeatOptionDaysOfWeek", getRepeatOptionDaysOfWeek())
            .append("repeatOptionDaysOfMonth", getRepeatOptionDaysOfMonth())
            .append("repeatOptionWeekOfMonth", getRepeatOptionWeekOfMonth())
            .append("beginAt", getBeginAt())
            .append("endAt", getEndAt())
            .append("recurringTaskStartTimeList", getRecurringTaskStartTimeList())
            .append("continuousTaskPeriods", getContinuousTaskPeriods())
            .append("minBatteryCapacity", getMinBatteryCapacity())
            .toString();
    }
}
